<?php
class PacientesController extends AppController {

	var $name = 'Pacientes';
	var $helpers = array('javascript');
	function index() {
		$this->loadModel('Grupo');
		$this->set('rol',$this->Grupo->field('nombre_del_grupo',array('Grupo.grupo_id'=>$this->Session->read('Auth.Usuario.grupo_id'))));
	}

	function view($id = null) {
		if (!$id) {
			$this->autoRender=false;
				$this->Session->setFlash('Debe proporcionar un id');
				$this->render('/elements/error');
				return;
		}else{
			$this->redirect(array('controller'=>'pacientes','action'=>'edit',$id));
		}
	}

	function add() {
		//Definir variables para la vista:
		//Pasar los departamentos del paìs por defecto, COLOMBIA, cuyo id es 33.

		$this->set('departamentos_defecto',$this->Paciente->Lugar->find('list',array(
																					'conditions'=>array('Lugar.parent_id' => '33','Lugar.tipo_de_lugar'=> '2'),
																					'fields'=>array('Lugar.lugar_id','Lugar.nombre_del_lugar'),
																					'order' => 'Lugar.nombre_del_lugar'	
																					)
																		)
		);
	
	
		if (!empty($this->data)) {
			$this->data['Paciente']['usuario_id']=$this->Session->read('Auth.Usuario.usuario_id');
			$this->Paciente->create();
			//En el caso en el que el id del lugar sea 0 verifique que haya escrito una dirección
			
			if ($this->Paciente->save($this->data)) {
				$this->flash(sprintf(__('%s saved.', true), 'Paciente'), array('action' => 'index'));
				//TODO: Mejorar los mensajes de error.
				
				$this->redirect(array("action"=>"edit",$this->Paciente->id));
			} else {
				$this->autoRender=false;
				$this->Session->setFlash('No se pudo guardar la información');
				$this->render('/elements/error');
			}
		}
	}

	function edit($id = null) {
		$this->autoRender=false;
		if (!$id) {
			$this->Session->setFlash('Debe dar el id del paciente que desea editar');
			$this->render('/elements/error');
			return;
		}else {
			$paciente=$this->Paciente->find('first',array('recursive'=>0,'conditions'=>array('Paciente.paciente_id'=>$id)));
			if($paciente){
				$this->autoRender=true;
				$this->set('departamentos_defecto',$this->Paciente->Lugar->find('list',array(
																'conditions'=>array('Lugar.parent_id' => '33','Lugar.tipo_de_lugar'=> '2'),
																'fields'=>array('Lugar.lugar_id','Lugar.nombre_del_lugar'),
																'order' => 'Lugar.nombre_del_lugar'	
				)));
				$this->set('tipos_de_eventos',$this->Paciente->Evento->TiposDeEvento->find('list'));
				if( !empty($this->data)){
					if ($this->Paciente->save($this->data)) {
						$this->flash(sprintf(__('%s saved.', true), 'Paciente'), array('action' => 'index'));
						//TODO: Mejorar los mensajes de error.
						$this->redirect(array("action"=>"index"));
					}
				}
				if( empty($this->data)){
					$this->data =$paciente;
					//Pasamos a la vista la lista de municipios que incluye al municipio al que pertenece el paciente.
					
					$lugar=$this->Paciente->Lugar->getpath($this->data['Lugar']['lugar_id']);
					if(isset($lugar[1])) {
						$this->data['Paciente']['codigo_departamento']=$lugar[1]['Lugar']['lugar_id'];
						$this->set('municipios',$this->Paciente->Lugar->find('list',array(
						'conditions'=>array('Lugar.parent_id' => $this->data['Paciente']['codigo_departamento']),
						'fields'=>array('Lugar.lugar_id','Lugar.nombre_del_lugar'),
						'order' => 'Lugar.nombre_del_lugar'	
						)));
					}
					if(isset($lugar[2])) $this->data['Paciente']['codigo_municipio']=$lugar[2]['Lugar']['lugar_id'];
					if(isset($lugar[3])) $this->data['Paciente']['nombre_direccion']=$lugar[3]['Lugar']['nombre_del_lugar'];
					
					
					//$this->set('lugar',$this->Paciente->Lugar->getpath($this->data['Lugar']['lugar_id']));
					$this->set('eventos',$this->Paciente->Evento->find('all',array('conditions'=>array('Evento.paciente_id'=>$this->data['Paciente']['paciente_id']))));
	
	
				}
			}else{
			$this->Session->setFlash('El paciente que esta intentando editar no existe');
			$this->render('/elements/error');
			}

		}


	}
	
	function search(){
		if(!empty($this->data)){
			$paciente = $this->Paciente->find('first',array('recursive'=>0,'conditions'=>array('Paciente.numero_del_documento'=>$this->data['Paciente'])));
			if ($paciente){
				$this->data=$paciente;
				$this->set('lugars',$this->Paciente->Lugar->getpath($this->data['Lugar']['lugar_id']));	
			}else{
				$this->data=array();
			}	
		}
		
	}

	/*function delete($id = null) {
		if (!$id) {
			$this->flash(sprintf(__('Invalid %s', true), 'paciente'), array('action' => 'index'));
		}
		if ($this->Paciente->delete($id)) {
			$this->flash(sprintf(__('%s deleted', true), 'Paciente'), array('action' => 'index'));
		}
		$this->flash(sprintf(__('%s was not deleted', true), 'Paciente'), array('action' => 'index'));
		$this->redirect(array('action' => 'index'));
	}*/
}
?>